这些看起来很呆的Python编写习惯 | 您所在的位置:网站首页 › python print科学计数法 › 这些看起来很呆的Python编写习惯 |
hello我是啥都生,在这篇文章中,将介绍17个有很大改进空间的Python编程案例,既然都用Python了,那么提供的轮子就赶紧用起来哈哈,一起看看吧~ 1.使用多个打印语句初级如果想打印多个变量,部分人会觉得每个变量都应该有自己的 print() 语句,哈哈哈以前我也是 进阶 使用多个打印语句尤其是新手在使用 Python 编码时最常犯的错误,其实,使用print(),可以在单个打印语句中打印多个变量,如下所示: 上面的sep参数指定使用相同打印语句(上面的 a、b 和c)打印的各种变量之间的分隔符 注意,end参数用于指定print语句的结束符 在上面的代码中,end='\n---\n'参数打印换行符,再是 ---,然后是换行符 2. 使用Print语句代替日志记录模块在小型项目中可能无关紧要,我自己也是喜欢print,但值得一提的是大型项目中日志就太重要了 初级 进阶 3.使用for循环打印相同的变量初级 如标题所述,我们的目标是多次打印同一个变量 当然,创建一个for循环打印,能说这有问题吗,当然没什么问题 进阶 虽然写一个for循环没坏处,但没必要,可以这样 4.创建一个单独的变量来跟踪循环中的索引初级 - 1 为实现这一点,通常会定义一个新变量idx来跟踪索引值并在每次迭代时递增它,如下所示: 初级 - 2 或者,创建一个range迭代器来跟踪索引,如下: 进阶 不得不提enumerate()方法,使用此方法,可以跟踪索引idx和值i,如下所示: 5.使用for循环将列表转换为字符串初级 如下所示,使用for循环一次拼接列表中的一个元素 进阶 其实将列表转换为字符串的简便方法是使用join()方法,如下所示: 这不仅能免于编写一些不必要的长代码,而且与 for 循环方法一样直观。 6.使用for循环从列表中删除重复项初级 遍历输入列表并将唯一元素存储在新列表中 进阶 其实,集合就行啦,使用一行代码就可以从列表中删除重复项 二者可以相互转换 7.使用for循环在列表中搜索元素初级 假设想知道某个元素是否存在于列表(或集合)中并返回布尔(如果存在则为True,否则为False) 初级用法如下所示: 太复杂了 进阶 使用in关键字将其简化为单行实现 8.使用索引变量迭代两个相同size的可迭代对象 初级 类似于在第4节中所提,定义一个专门用于索引的变量,在两个size相同的列表中取值,如下所示: 进阶 进阶一点的方法是使用zip()函数,将两个可迭代对象中的相应值配对 9.使用for循环反转列表初级 反向迭代列表并将元素添加到新列表,如下所示: 进阶 如果了解 Python 中的切片,那么一个简单的单行代码就可以实现(其实内置方法等都可以实现) 10.使用for循环计算可迭代对象中元素的出现次数初级 查找元素频率的简单方法是使用for循环遍历列表并计算次数 进阶 其实可以使用count()方法: 同样的,也可以在字符串中使用: 11.使用for循环获取字符串的子字符串初级 这里的目标是返回一个长度为n_chars的子串,从位置start_index开始 很多人解决这个问题的方法是使用for循环,如下所示: 进阶 单行方法是使用切片,这样可以避免编写for循环 12.定义长整型常量假设想声明一个值为 10²¹ 的整型变量 初级 很多情况下,会连续写入零并在键入时进行计数 但是别人若要参考这段代码,就得把所有的零都数一遍,当场去世 进阶 为提高可读性,可以用_(下划线)分隔,如下: 但这仍然很麻烦,还是要数零。 如果数字能以 a^b 的形式表示,则可以改用 pow()方法,或者科学计数法: 13.使用if条件更改字符串的大小写给定一个字符串,目标是将大写字母变为小写,反之亦然 初级 检查每个元素的情况,然后为每个情况设置特定条件 进阶 可以改用swapcase()方法 14.获得两个集合的并集初级 迭代这两个集合并将元素添加到一个新集合中 进阶 Python 为两个集合的并集提供了union()方法 更重要的是,可以将其扩展到任意数量的输入集: 想象一下,需要编写多少个for循环来合并这四个集合,同样的集合还有求补、交等等便捷内置方法 15.更改列表中所有元素的数据类型给定一个表示整数的字符串列表,目标是通过更改数据类型将它们转换为整数列表 初级 循环遍历列表并对单个元素进行类型转换 进阶 使用map(),如下所示: 作为其第一个参数,map()方法接受一个函数 int,第二个参数是一个可迭代对象 input_list 16.交换变量给定两个变量,目标是将第一个变量的值传递给第二个变量,将第二个变量的值传递给第一个变量 初级 大多数写惯了 C/C++ 的程序员采用的方法是定义一个新变量temp 进阶 而Python 允许在单个语句中进行多次赋值,从而消除对临时变量的需要,就是解包啦,之前教程都有说过 17.使用嵌套循环生成两个列表的所有组合给定两个列表(a的长度为 n,b的长度为m),生成所有n*m结构 初级 编写两个嵌套的for循环并将所有组合添加到列表中 进阶 使用 itertools 库中的product()方法,如下所示: 事实上包括我在内,以前很多时候都习惯于用for循环等解决问题,其实就是对内置函数/方法不熟悉~ 以上内容有任何错误欢迎指出,我是啥都生,下期再见 |
CopyRight 2018-2019 实验室设备网 版权所有 |